package jielong

import (
	"youdu/common"
	daoLists "youdu/dao/jielong/lists"
	"youdu/model"
	modelJielong "youdu/model/jielong"
	"youdu/service/yodoo/sso"

	daoListUsers "youdu/dao/jielong/list_users"

	"github.com/gin-gonic/gin"
)

func Lists(c *gin.Context) {
	var rows []modelJielong.Lists
	pager := model.DefaultPager
	if err := c.ShouldBindQuery(&pager); err != nil {
		// 处理错误
		common.ResFail(c, "参数错误："+err.Error())
	}
	cu := sso.CurrentUser(c)
	if err := daoLists.Find(cu, &pager, &rows); err != nil {
		common.ResFail(c, err.Error())
		return
	}
	common.ResSuccessWithTotal(c, rows, pager.Total)
}
func ListsOfParticipate(c *gin.Context) {
	var rows []modelJielong.Lists
	pager := model.DefaultPager
	if err := c.ShouldBindQuery(&pager); err != nil {
		// 处理错误
		common.ResFail(c, "参数错误："+err.Error())
	}
	cu := sso.CurrentUser(c)
	if err := daoLists.FindParticipate(cu, &pager, &rows); err != nil {
		// 处理错误
		common.ResFail(c, err.Error())
	}
	common.ResSuccessWithTotal(c, rows, pager.Total)
}
func ListItem(c *gin.Context) {
	var row modelJielong.Lists
	var id = c.Param("id")
	if err := daoLists.FindItem(id, &row); err != nil {
		common.ResFail(c, "查询失败："+err.Error())
		return
	}
	common.ResSuccess(c, row)
}
func ListItemWithUsers(c *gin.Context) {
	var data modelJielong.ItemWithUsers
	var id = c.Param("id")
	if err := daoLists.FindItemWithUsers(id, &data); err != nil {
		common.ResFail(c, err.Error())
		return
	}
	common.ResSuccess(c, data)
}
func ListAdd(c *gin.Context) {
	var li modelJielong.Lists
	if err := c.ShouldBindJSON(&li); err != nil {
		common.ResFail(c, "参数错误："+err.Error())
		return
	}
	user := sso.CurrentUser(c)
	if err := daoLists.Add(user, &li); err != nil {
		common.ResFail(c, err.Error())
		return
	}
	common.ResSuccess(c, li)
}
func ListUpdate(c *gin.Context) {
	var li modelJielong.Lists
	if err := c.ShouldBindJSON(&li); err != nil {
		common.ResFail(c, "参数错误："+err.Error())
		return
	}
	// 更新已接龙人数
	if err := daoLists.Update(&li); err != nil {
		common.ResFail(c, err.Error())
		return
	}
	common.ResSuccess(c, li)
}
func ListDelete(c *gin.Context) {
	// var row modelJielong.Lists
	var id = c.Param("id")
	cu := sso.CurrentUser(c)
	if err := daoLists.Del(id, cu); err != nil {
		common.ResFail(c, err.Error())
		return
	}
	common.ResSuccess(c, "删除成功")
}

func ListUsers(c *gin.Context) {
	var rows []modelJielong.ListUsers
	var id = c.Param("id")
	if err := daoListUsers.Find(id, &rows); err != nil {
		common.ResFail(c, err.Error())
		return
	}
	common.ResSuccess(c, rows)
}
func ListUserAdd(c *gin.Context) {
	var user modelJielong.ListUsers
	cu := sso.CurrentUser(c)
	if err := c.ShouldBindJSON(&user); err != nil {
		common.ResFail(c, "参数错误："+err.Error())
		return
	}
	user.UserAccount = cu.Account
	user.UserName = cu.ChsName
	if err := daoListUsers.Add(&user); err != nil {
		common.ResFail(c, err.Error())
		return
	}
	common.ResSuccess(c, user.ID)
}
func ListUserUpdate(c *gin.Context) {
	var user modelJielong.ListUsers
	if err := c.ShouldBindJSON(&user); err != nil {
		common.ResFail(c, "参数错误："+err.Error())
		return
	}
	// 更新已接龙人数
	if err := daoListUsers.Update(&user); err != nil {
		common.ResFail(c, err.Error())
		return
	}
	common.ResSuccess(c, user.ID)
}

func ListUserDelete(c *gin.Context) {
	id := c.Param("id")
	cu := sso.CurrentUser(c)
	if err := daoListUsers.Del(id, cu); err != nil {
		common.ResFail(c, err.Error())
		return
	}
	common.ResSuccess(c, id)
}

// func updateListUsersCount(){}
